﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Inventario.Negocio;
using System.Text;

namespace Inventario.Presentacion
{
    public partial class IngresoDetalleFactura : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
            cargarDatos();
            llenarelementos(DDownList_NumFactura.SelectedValue);
            }
        }

        private void cargarDatos()
        {

            Factura x = new Factura();
           DDownList_NumFactura.DataSource = x.llenarFactura();
           DDownList_NumFactura.DataTextField = "NumeroDocumento";
           DDownList_NumFactura.DataValueField = "CabeceraId";
           DDownList_NumFactura.DataBind();

           ClaseProducto y = new ClaseProducto();
           DropDownList3.DataSource = y.obtenerDatos();
           DropDownList3.DataTextField = "NombreProducto";
           DropDownList3.DataValueField = "ProductoId";
           DropDownList3.DataBind();
        }

        private void llenarelementos(string dato)
        {

            if (dato != null || dato != "")
            {
                Factura x = new Factura();
                ConsultarProveedor y = new ConsultarProveedor();
                x = x.llenarFactura().Where(c => c.CabeceraId == Convert.ToInt32(dato)).FirstOrDefault();
                y = y.ObtenerProveedor().Where(c => c.ProveedorId == x.ProveedorId).FirstOrDefault();
                LblEmpleado.Text = x.NombrePersona + ' ' + x.ApellidoPersona;
                lblProveedor.Text = y.Nombres;
                lbl_fecha.Text = x.Fecha.ToString();
                LblIdFactura.Text = x.CabeceraId.ToString();
            }
        }


        protected void TextBox2_TextChanged(object sender, EventArgs e)
        {

        }

        protected void TextBox1_TextChanged(object sender, EventArgs e)
        {

        }

        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            if (TextBox1.Text != "" && TextBox2.Text != "")
            {
                calcular();
                GuardarDetalleFactura();
                Literal2.Text = llenarproductos();
            }
            else
            {
                StringBuilder b = new StringBuilder();
                lblTotal.Text = "Todos los datos son necesartios";
            }
           }

        protected void DDownList_NumFactura_SelectedIndexChanged(object sender, EventArgs e)
        {
          
               
            
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            llenarelementos(DDownList_NumFactura.SelectedValue);
            TextBox3.Text = "0";
            TextBox6.Text = "0";
            Literal2.Text= llenarproductos();
            btnAgregar.Visible = true;
          
        }

        private void GuardarDetalleFactura()
        {
            Ingreso_Cabecera_Detalle_Factura datos = new Ingreso_Cabecera_Detalle_Factura();
            datos.Ingreso_Detalle_Factura(new Ingreso_Cabecera_Detalle_Factura { cabeceraFactura = Convert.ToInt32(LblIdFactura.Text), productoid = Convert.ToInt32(DropDownList3.SelectedValue), cantidad = Convert.ToInt32(TextBox1.Text), precio = Convert.ToDecimal(TextBox2.Text), iva = 0, PrecioTotal = Convert.ToDecimal(lblTotal.Text) });
        }

        private void calcular()
     {
         lblTotal.Text = (Convert.ToDecimal(TextBox1.Text) * Convert.ToDecimal(TextBox2.Text)).ToString();
        ////    TextBox3.Text = ((Convert.ToDecimal(lblTotal.Text) + Convert.ToDecimal(TextBox3.Text)).ToString();
        ////    TextBox6.Text = TextBox3.Text;
       }


       private string llenarproductos()
        {
            Ingreso_Cabecera_Detalle_Factura x = new Ingreso_Cabecera_Detalle_Factura();
            StringBuilder tabla = new StringBuilder();
            tabla.Append("<table border='1' align= 'center'>");
            tabla.Append("<tr>");
            tabla.Append("<td width='68px'>Cantidad</td>");
            tabla.Append("<td width='498px'>Producto</td>");
            tabla.Append("<td width='97px'>Precio U</td>");
            tabla.Append("<td width='77px'>Precio T</td>");
            tabla.Append("<td width='65px'>..</td>");
            tabla.Append("</tr>");

            TextBox3.Text = "0";
       
            foreach (var iten in x.ProductosFactura())
            {
                if (iten.cabeceraFactura == Convert.ToInt32(LblIdFactura.Text))
                {
                    tabla.Append("<tr>");
                    
                    tabla.Append("<td>" + iten.cantidad + "</td>");
                    tabla.Append("<td>" + iten.nombreproducto + "</td>");
                    tabla.Append("<td>" + iten.precio + "</td>");
                    tabla.Append("<td>" + iten.PrecioTotal + "</td>");
                    TextBox3.Text =(Convert.ToDecimal(iten.PrecioTotal) + Convert.ToDecimal(TextBox3.Text)).ToString();
                    TextBox6.Text = TextBox3.Text;
                    tabla.Append("<td><a href='/OpcionesProductos.aspx?id=" + iten.DetalleFacturaId + "&cabeceraid=" + DropDownList3.SelectedValue + "'> Editar | Eliminar </a></td>");
                    tabla.Append("</tr>");
                }



            }

            tabla.Append("</table>");

            return tabla.ToString();


        }
    }
}